package main
import (
	"fmt"
	"os"
	_"bufio"
	_"io"
	"io/ioutil"
)
//编写一个程序，将一个文件的内容，写到另一个文件中... 使用 ioutil.ReadFile/ioutil.WriteFile 完成
func main(){
	//将 write.txt文件 读取内存，在读取到 test.txt 文件中
	filePath1 := "D:/uploadfiles/test.txt"
	filePath2 := "D:/uploadfiles/write.txt"
	content,err := ioutil.ReadFile(filePath2) //content : []byte
	if err != nil{
		fmt.Println("读取文件失败，Error ： ",err)
		return
	}
	//func WriteFile(filename string, data []byte, perm os.FileMode) error
	err =ioutil.WriteFile(filePath1,content,0666)
	if err != nil{
		fmt.Println("写入文件失败，Error ： ",err)		
	}
	exist,e := PathExists(filePath1)
	fmt.Println(filePath1,"存在与否？：",exist,"   Error : ",e)
}

	//判断文件是否存在 使用 os.Stat()，根据返回的错误值进行判断
	/*
	1、如果返回的错误为nil，说明文件或文件夹存在
	2、如果返回的错误类型使用os.IsNotExist()判断为true，说明文件或文件夹不存在
	3、如果返回的错误为其他类型，则不确定是否存在
	*/
func PathExists(path string)(bool,error){
	_,err := os.Stat(path)
	if err == nil {
		return true,nil
	}
	if os.IsNotExist(err){
		return false,nil
	}
	return false,err
}